ヘッダーをスキップ
Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド
リリース7.0
E05172-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

READONLYキャッシュ・グループの作成

「TimesTenおよびOracleの設定」の説明に従ってTimesTenおよびOracleを設定した後、キャッシュ・グループを作成できます。

この項では、Oracleデータベースの単一の表の内容をキャッシュする、単純なREADONLYキャッシュ・グループの作成方法について説明します。キャッシュ・グループは複数の表で構成できますが、ここでは、わかりやすくするために、1つのOracle表のみをキャッシュする例を示します。

図2.1 単純なREADONLYキャッシュ・グループ

手順は次のとおりです。

手順1: Oracle表の作成

図2.2 Oracle表の作成

新しいOracleアカウントに接続し、表を作成します。

sqlplus testuser/mypsswrd@system1

SQL> CREATE TABLE readtab (a NUMBER NOT NULL PRIMARY KEY,

                           b VARCHAR2(31));

次に、数行挿入して変更をコミットします。

SQL> INSERT INTO readtab VALUES (1, 'hello');

SQL> INSERT INTO readtab VALUES (2, 'world');

SQL> COMMIT;

手順2: キャッシュ・グループの作成

図2.3 READONLYキャッシュ・グループの作成

ttIsqlユーティリティを使用してcgDSNデータ・ストアに接続します。コマンド・プロンプトで、ttCacheUidPwdSetプロシージャを使用してキャッシュ管理ユーザーIDおよびパスワードをパラメータとして渡します。その後、ttCacheStartプロシージャをコールしてデータ・ストアのキャッシュ・エージェントを起動します。この例では、キャッシュ管理ユーザーIDはtestuser、パスワードはmypsswrdです。

> ttIsql cgDSN

Command> call ttCacheUidPwdSet('testuser','mypsswrd');

Command> call ttCacheStart();


注意: この例では、キャッシュ管理ユーザーのIDおよびパスワードはOracleのユーザー名およびパスワードと同じです。ただし、Oracleユーザー・アカウントがOracleからの自動リフレッシュに必要な権限を持っていないため、別のキャッシュ管理ユーザー・アカウントを指定する必要がある場合があります。キャッシュ管理ユーザーIDおよびパスワードは、データ・ストアに対して1回のみ設定する必要があります。詳細は、「Oracleユーザーの作成および権限の設定」を参照してください。

次に、CREATE CACHE GROUP文を使用して、readcacheというREADONLYキャッシュ・グループを作成し、TimesTenにOracle表readtabの内容をキャッシュします。

Command> CREATE READONLY CACHE GROUP readcache

> AUTOREFRESH INTERVAL 5 SECONDS

> FROM readtab

>(a NUMBER NOT NULL PRIMARY KEY, b VARCHAR2(31));

CREATE CACHE GROUP文のUNIQUE HASH...PAGES句を使用して、ハッシュ索引値の適切なサイズを設定し、ロード・パフォーマンスを向上できます。PAGESの値は(予想行数)/256にする必要があります。100万行の場合、CREATE CACHE GROUP文は次のようになります。

Command> CREATE READONLY CACHE GROUP readcache

> AUTOREFRESH INTERVAL 5 SECONDS

> FROM readtab

>(a NUMBER NOT NULL PRIMARY KEY, b VARCHAR2(31))

> UNIQUE HASH ON a PAGES=3906;

手順3: キャッシュ・グループのロード

Oracle表の内容をキャッシュ・グループ表にロードします。

Command> LOAD CACHE GROUP readcache COMMIT EVERY 256 ROWS;

readtab表の内容を確認します。

Command> SELECT * FROM readtab;

< 1, hello                           >

< 2, world                           >

2 rows found

ttIsql cachegroupsコマンドを使用して、READCACHEキャッシュ・グループの定義を確認します。

Command> cachegroups;

Cache Group TESTUSER.READCACHE:

Cache Group Type: Read Only

Autorefresh: Yes

Autorefresh Mode: Incremental

Autorefresh State: On

Autorefresh Interval: 5 Seconds

Autorefresh Limit: 10000

Root Table: TESTUSER.READTAB

Table Type: Read Only

1 cache group found.

手順4: Oracle表の更新

図2.4 Oracle更新でのTimesTenの自動リフレッシュ

SQL*Plusを使用して、数行をREADTABに挿入し、変更をコミットします。

SQL> INSERT INTO readtab VALUES (3, 'Hello');

SQL> INSERT INTO readtab VALUES (4, 'Again');

SQL> COMMIT;

5秒後に、TimesTenは、Oracleからキャッシュされたデータを自動的にリフレッシュします。ttIsqlで、READTAB表の内容を確認します。

Command> SELECT * FROM readtab;

< 1, hello                           >

< 2, world                           >

< 3, Hello                           >

< 4, Again                           >

4 rows found

手順5: キャッシュ・グループの削除

TimesTenウィンドウで、DROP CACHE GROUP文を使用してTimesTenデータ・ストアからキャッシュ・グループを削除します。

Command> DROP CACHE GROUP readcache;

手順6: キャッシュ・エージェントの停止

ttCacheStopプロシージャをコールして、データ・ストアのキャッシュ・エージェントを停止します。

Command> call ttCacheStop();